package com.ruoyi.worker.service;


import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.worker.domain.AttendanceGroup;
import com.ruoyi.worker.domain.AttendanceInfo;
import com.ruoyi.worker.domain.AttendanceStatisticsImg;
import com.ruoyi.worker.domain.ExcelToolDomain;

import java.util.List;

/**
 * @ClassName: AttendanceGroupService
 * @Description:
 * @Author: songxin
 * @Date: 2021/9/8 17:30
 */
public interface AttendanceGroupService {



    /**
     * 批量删除班组提供考勤明细信息
     *
     * @param ids 需要删除的用户IDs数组
     * @return 结果
     */
    public int deleteAttendanceGroupIds(Long[] ids);
    /**
     *新增班组提供考勤明细信息
     *
     * @date 2021/9/8 17:39
     * @param a
     * @return int
     */
    int addAttendanceGroup(AttendanceGroup a);

    /**
     * 修改班组提供考勤明细信息
     *
     * @param a 班组提供考勤明细信息
     * @return 结果
     */
      int updateAttendanceGroup(AttendanceGroup a);
    /**
     *  获取明细信息
     * @author 刘松山
     * @date 2021/9/8 20:25
     * @param id
     * @return com.ruoyi.worker.domain.AttendanceGroup
     */
    AttendanceGroup getAttendanceGroup(long id);
    /**
     * 获取考勤统计信息列表
     * @author 刘松山
     * @date 2021/9/9 14:29
     * @param a
     * @return java.util.List<com.ruoyi.worker.domain.AttendanceInfo>
     */
    List<AttendanceInfo> listAttendanceInfo(AttendanceInfo a);
    /**
     * 根据考勤日期查询记录是否存在 班组
     * @author 刘松山
     * @date 2021/9/9 17:08
     * @param a
     * @return int
     */
    AttendanceGroup countAttendanceGroup(AttendanceGroup a);
    /**
     * 根据考勤日期删除所有记录 班组
     * @author 刘松山
     * @date 2021/9/9 17:09
     * @param a
     * @return int
     */
    int delALlAttendanceGroup(AttendanceGroup a);

    /**
     * 根据考勤日期删除所有记录 汇总后的
     * @author 刘松山
     * @date 2021/9/9 17:09
     * @param a
     * @return int
     */
    int delALlAttendanceSum(AttendanceGroup a);
    /**
     * 确认考勤信息
     * @author 刘松山
     * @date 2021/9/9 19:30
     * @param attendanceInfo
     * @return int
     */
    int modifyAttendanceInfo(AttendanceInfo attendanceInfo);
    /**
     * 保存员工考勤汇总记录
     * @author 刘松山
     * @date 2021/9/9 19:42
     * @param a
     * @return int
     */
    int addAttendanceStatistics(AttendanceInfo a);
    /**
     * 修改员工的考勤状态
     * @author 刘松山
     * @date 2021/9/10 13:13
     * @param id
     * @return int
     */
    int changAttendanceStatus(long id,int attendanceFlag);
    /**
     * 根据考勤日期
     * @author 刘松山
     * @date 2021/9/10 16:50
     * @param a
     * @return int
     */
    int delALlAttendancestatistics(AttendanceGroup a);
    /**
     * 保存上传的凭证地址
     * @author 刘松山
     * @date 2021/9/10 21:29
     * @param a
     * @return int
     */
    int modifyAttendanceStatistics(AttendanceInfo a);
    /**
     * @Description : 获取班组信息
     * @Author : leizhang
     * @Date 8:34 下午 2021/9/5
     * @param attendanceGroup
     * @return java.util.List<com.ruoyi.worker.domain.ExcelToolDomain>
     **/
    List<AttendanceGroup> listAttendanceGroup(AttendanceGroup attendanceGroup);
    /**
     * 修改渠道商和班组考勤对比后的记录
     * @author 刘松山
     * @date 2021/9/12 9:15
     * @param attendanceGroup
     * @return int
     */
    int  modifyAttendanceSum(AttendanceGroup attendanceGroup);

    /**
     * 查询身份证号是否重复
     * @author 刘松山
     * @date 2021/9/13 9:27
     * @return int
     */
    int countAttendanceByIdCard(AttendanceGroup attendanceGroup);

    /**
     * @Description : 班组信息导入
     * @Author : leizhang
     * @Date 5:16 下午 2021/9/5
     * @param excelToolDomain
     * @return void
     **/
    void saveWorkerGroup(List<ExcelToolDomain> excelToolDomain);
    /**
     * @Description : 获取班组信息
     * @Author : leizhang
     * @Date 8:34 下午 2021/9/5
     * @param excelToolDomains
     * @return java.util.List<com.ruoyi.worker.domain.ExcelToolDomain>
     **/
    List<ExcelToolDomain> getAttendanceCompany(ExcelToolDomain excelToolDomains);
    /**
     * @Description : 员工出勤信息保存
     * @Author : leizhang
     * @Date 6:32 下午 2021/9/5
     * @param excelToolDomain
     * @return void
     **/
    void saveAttendanceSum(List<ExcelToolDomain> excelToolDomain);


    /**
     * @Description : 员工出勤信息获取
     * @Author : leizhang
     * @Date 6:48 下午 2021/9/5
     * @param excelToolDomain
     * @return java.util.List<com.ruoyi.worker.domain.ExcelToolDomain>
     **/
    List<ExcelToolDomain> getAttendanceInfos(ExcelToolDomain excelToolDomain);

    /**
     * @Description : 获取班组信息
     * @Author : leizhang
     * @Date 8:34 下午 2021/9/5
     * @param excelToolDomains
     * @return java.util.List<com.ruoyi.worker.domain.ExcelToolDomain>
     **/
    List<ExcelToolDomain> getAttendanceSum(ExcelToolDomain excelToolDomains);
    /**
     * 获取考勤汇总记录
     * @author 刘松山
     * @date 2021/9/14 22:21
     * @param a
     * @return com.ruoyi.worker.domain.AttendanceInfo
     */
    AttendanceInfo getAttendanceStatistics(AttendanceInfo a);

    /**
     * 获取需求单考勤未知的数量 用于考勤确认
     * @author 刘松山
     * @date 2021/9/15 17:29
     * @param a
     * @return int
     */
    int countAttendanceSum(AttendanceInfo a);
    /**
     * 根据身份证查询是否唯一
     * @author 刘松山
     * @date 2021/9/16 9:41
     * @param attendanceGroup
     * @return int
     */
    int countAttendanceSumByIdCard(AttendanceGroup attendanceGroup);
    /**
     * 查询凭证列表
     * @author 刘松山
     * @date 2021/9/26 15:36
     * @param a
     * @return java.util.List<com.ruoyi.worker.domain.AttendanceStatisticsImg>
     */
    List<AttendanceStatisticsImg> getAttendanceStatisticsImg(AttendanceStatisticsImg a);
    /**
     * 保存上传的凭证
     * @author 刘松山
     * @date 2021/9/26 15:07
     * @param list
     * @return int
     */
    int addAttendanceStatisticsImg(List<AttendanceStatisticsImg> list);
    /**
     * 删除上传的凭证
     * @author 刘松山
     * @date 2021/9/26 15:09
     * @param attendanceStatisticsImg
     * @return int
     */
    int delAttendanceStatisticsImg(AttendanceStatisticsImg attendanceStatisticsImg);
  /**
   * @description:  导入临时工考勤excel
   * @author 刘松山
   * @date 2021/12/21 10:14
   *
   */
    public AjaxResult importExcel(List<ExcelToolDomain> ExcelToolDomains );
    /**
     * @description:  生成临时工薪资
     * @author 刘松山
     * @date 2021/12/23 16:28
     *
     */
    void translateAttendanceToSalary(List<AttendanceInfo> attendanceInfos);
}
